--
-- ********************************************************************
-- CISCO-CABLE-QOS-MONITOR-MIB.my:
-- Cisco Cable QoS Monitoring MIB file
--
-- Jan 2003, Sunethra Jawahar
--
-- Copyright (c) 2003 by Cisco Systems, Inc.
-- All rights reserved.
-- ********************************************************************
--
--
-- This is the MIB module for subscriber QoS monitoring for
-- DOCSIS-compliant Cable Modem Termination Systems (CMTS).
--
-- QoS Monitoring is a software feature provided in the CMTS so that
-- the CMTS may identify subscribers who over consume resources
-- based on their QoS parameters, report them to a management
-- entity, and automatically mitigate the problem where possible.
-- This is done by penalyzing the violating subscribers by changing
-- their QoS parameters to enforced QoS parameters.
--
-- The MIB allows to create enforce rules which are used to determine the
-- over consumption of resources. The enforce rule contains monitoring
-- and enforced QoS parameters.
--
-- The MIB also provides a unified view of all over-consuming subscribers.
--
--CISCO-CABLE-QOS-MONITOR-MIB DEFINITIONS::=BEGINIMPORTSMODULE-IDENTITY,OBJECT-TYPE,Unsigned32,NOTIFICATION-TYPEFROM SNMPv2-SMI
TEXTUAL-CONVENTION,TruthValue,MacAddress,RowStatus,DisplayString,
DateAndTimeFROM SNMPv2-TC
OBJECT-GROUP,MODULE-COMPLIANCE,NOTIFICATION-GROUPFROM SNMPv2-CONF
ifIndex
FROM IF-MIB
ciscoMgmt
FROM CISCO-SMI;ciscoCableQosMonitorMIB MODULE-IDENTITYLAST-UPDATED"200304030000Z"ORGANIZATION"Cisco Systems, Inc."CONTACT-INFO" Cisco Systems
Customer Service
Postal: Cisco Systems
170 West Tasman Drive
San Jose, CA 95134
U.S.A.
Phone: +1 800 553-NETS
E-mail: cs-ubr@cisco.com"DESCRIPTION"This is the MIB module for subscriber QoS monitoring
for DOCSIS-compliant Cable Modem Termination Systems
(CMTS).
Several subscriber behaviour can be monitored:
1. When the subscriber requests for more resources than
as defined by its QoS parameters. In this case, though
requested for more rate-limiting happens in the CMTS,
hence, the subscriber will get only as much resources
as defined by its registered QoS.
2. When the subscriber continuously utilizes the resources
to the upper limit or very near to the upper limit as
defined by its QoS parameter.
3. When the subscriber sometimes or never utilizes the
resources as defined by the upper limit of the QoS
parameters.
In the first two cases, we need to monitor the subscribers
as upstream/downstream is a shared medium, and if all
subscribers start consuming resources as per their peak
rate, or a percentage of it, CMTS will be hard pressed for
resources. So, even though such subscribers are using
resources within the limits as defined by their QoS
parameters, from the CMTS point of view, they are over
consuming.
Through out this MIB, we refer to this behavior of
subscribers as over consumption of resources and such
subscribers will be the violating subscribers.
The subscriber QoS Monitoring is a software feature
provided on the CMTS so that the CMTS may identify such
subscribers who over consume resources based on their QoS
parameters, report them to a management entity, and
automatically mitigate the problem where possible.
This is done by penalizing the violating subscribers by
changing their QoS parameters to enforced QoS parameters.
The MIB allows to create enforce rules which are used to
determine the over consumption of resources. The enforce
rule contains monitoring and enforced QoS parameters.
The subscribers who over consume their bandwidth are
flagged and NMS notified of all such violations.
The MIB also provides a unified view of all over-consuming
subscribers."REVISION"200304030000Z"DESCRIPTION"Changed ranges of few objects."REVISION"200303040000Z"DESCRIPTION"Initial version of this MIB module."::={ ciscoMgmt 341}CCQMRuleDirection ::=TEXTUAL-CONVENTIONSTATUScurrentDESCRIPTION"The CCQMRuleDirection is used to indicate the direction to
which the enforce rule applies to.
It has the following defined values:
- 'upstream', is used for an enforce rule in the direction from
subscriber to CMTS
- 'downstream', is used for an enforce rule in the direction from
CMTS to the subscriber.
- 'bidirection', which can mean neither upstream or downstream
but a combined enforce rule. "SYNTAXINTEGER{upstream(1),downstream(2),bidirection(3)}ciscoCableQosMonitorMIBObjects
OBJECTIDENTIFIER::={ ciscoCableQosMonitorMIB 1}ccqmEnforceRuleObjects
OBJECTIDENTIFIER::={ ciscoCableQosMonitorMIBObjects 1}
ccqmRuleViolateObjects
OBJECTIDENTIFIER::={ ciscoCableQosMonitorMIBObjects 2}--
-- Cmts Qos Enforce Rule Table
--
-- CMTS maintains a list of QoS enforce rules.
-- These enforce rules define :
-- 1) Criteria for identifying violating subscribers:
-- This criteria could be as simple as bytes transmitted over
-- the last monitoring duration and checked at a rate equal
-- to the sample rate.
-- In the sliding window concept used, the monitoring duration
-- is the size of the window. This window slides by an amount
-- that is equal to the sample rate. At every sample rate the bytes
-- transmitted in the time equal to a monitoring duration is
-- checked. If this is found to be larger than the defined
-- byte count limit per monitoring duration, the subscriber
-- is flagged as over consuming or violating the enforce rule.
-- Else the monitoring will continue.
-- For example let the monitoring duration be 360 minutes and
-- sample rate be 30 minutes. If the byte count is 100000 bytes
-- then every 30 minutes we check if the bytes transmitted in the
-- last 360 minutes exceeded 100000 bytes. If so, the subscriber
-- is over consuming.
--
-- |< Monitoring duration >|
--
-- |S rate |
-- |___________________________|
-- |____________________________|
-- |_____________________________|
-- |______________________________|
-- X X X X X X X
--
-- X -> Check made to see if byte count is exceeded.
-- S rate -> Sample rate
--
-- 2) Registered and Enforced QoS parameters:
-- Enforce rules have a one to one mapping to QoS profiles
-- that subscribers have registered with. If found to violate
-- parameters as defined by their Registered Qos the Enforced
-- Qos will be enforced on such subscribers. The rule can be
-- configured such that the enforcement happens automatically
-- or based on some manual settings by NMS.
-- 3) Penalty Period:
-- This defines the time period for which the Enforced Qos
-- will be applicable. The registered QoS will be restored
-- when the penalty period expires again based on whether
-- automation was desired.
--
-- This table allows configuration of QoS enforce rules that can be
-- applied to qos-profiles in case of DOCSIS1.0.
--ccqmCmtsEnforceRuleTable OBJECT-TYPESYNTAXSEQUENCEOF CcqmCmtsEnforceRuleEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains the attributes of the QoS enforce rules
present on the CMTS.
These enforce rules define the criteria for identifying
subscribers who over consume resources.
This could be as simple as bytes transmitted over
the last monitoring duration and checked at a rate equal
to the sample rate.
In the sliding window concept used, the monitoring duration
is the size of the window. This window slides by an amount
that is equal to the sample rate. At every sample rate the
bytes transmitted in the time equal to a monitoring duration
is checked. If this is found to be larger than the defined
byte count limit per monitoring duration, the subscriber
is flagged as over consuming. Else the monitoring will
continue.
For example let the monitoring duration be 360 minutes and
sample rate be 30 minutes. If the byte count is 100,000
bytes then every 30 minutes we check if the bytes
transmitted in the last 360 minutes exceeded 100,000 bytes.
If so, the subscriber is over consuming.
The enforce rule has a one to one mapping to QoS profiles
in case of DOCSIS1.0.
It defines the registered QoS and an enforced QoS to
be applied if found to be violating the registered QoS.
The enforce rule also defines a penalty period for which
the enforced Qos will be applied.
The registered QoS will be restored when the penalty
period expires."::={ ccqmEnforceRuleObjects 1}ccqmCmtsEnforceRuleEntry OBJECT-TYPESYNTAX CcqmCmtsEnforceRuleEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"A set of attributes of a enforce rule on the CMTS.
One entry exists for each QoS enforce rule. It is
indexed by ccqmCmtsEnfRuleName as each enforce rule
is associated with a unique name."INDEX{ ccqmCmtsEnfRuleName }::={ ccqmCmtsEnforceRuleTable 1}
CcqmCmtsEnforceRuleEntry ::=SEQUENCE{
ccqmCmtsEnfRuleName DisplayString,
ccqmCmtsEnfRuleRegQoS Unsigned32,
ccqmCmtsEnfRuleEnfQos Unsigned32,
ccqmCmtsEnfRuleMonDuration Unsigned32,
ccqmCmtsEnfRuleSampleRate Unsigned32,
ccqmCmtsEnfRulePenaltyPeriod Unsigned32,
ccqmCmtsEnfRuleByteCount Unsigned32,
ccqmCmtsEnfRuleDirection CCQMRuleDirection,
ccqmCmtsEnfRuleAutoEnforce TruthValue,
ccqmCmtsEnfRuleRowStatus RowStatus}ccqmCmtsEnfRuleName OBJECT-TYPE
SYNTAXDisplayString(SIZE(1..15))MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"The name of the enforce rule."::={ ccqmCmtsEnforceRuleEntry 1}ccqmCmtsEnfRuleRegQoS OBJECT-TYPESYNTAXUnsigned32(0..16383)MAX-ACCESSread-createSTATUScurrentDESCRIPTION"This object represents a pointer to the object
describing the quality of service attributes
associated with the registered service of the
subscriber.
For DOCSIS1.0 subscribers it is the index in
the docsIfQosProfileTable. If no associated
entry in docsIfQosProfileTable exists, this object
returns a value of zero. Similarly this object
can be set to 0 to indicate no entry in the
docsIfQosProfileTable associated with this QoS profile.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."REFERENCE"docsIfQosProfIndex from
draft-ietf-ipcdn-docs-rfmibv2-05.txt"::={ ccqmCmtsEnforceRuleEntry 2}ccqmCmtsEnfRuleEnfQos OBJECT-TYPESYNTAXUnsigned32(0..16383)
MAX-ACCESSread-createSTATUScurrentDESCRIPTION"This object represents a pointer to the object
describing the quality of service attributes
associated with the registered service of the
subscriber.
For DOCSIS1.0 subscribers it is the index in
the docsIfQosProfileTable. If no associated
entry in docsIfQosProfileTable exists, this object
returns a value of zero. Similarly this object
can be set to 0 to indicate no entry in the
docsIfQosProfileTable associated with this QoS profile.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."REFERENCE"docsIfQosProfIndex from
draft-ietf-ipcdn-docs-rfmibv2-05.txt"DEFVAL{0}
::={ ccqmCmtsEnforceRuleEntry 3}ccqmCmtsEnfRuleMonDuration OBJECT-TYPESYNTAXUnsigned32(10..10080)UNITS"minutes"MAX-ACCESSread-createSTATUScurrentDESCRIPTION"This object represents the duration for which
subscribers would be monitored to determine if they
were over consuming resources.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."DEFVAL{360}
::={ ccqmCmtsEnforceRuleEntry 4}ccqmCmtsEnfRuleSampleRate OBJECT-TYPESYNTAXUnsigned32(10..120)UNITS"minutes"MAX-ACCESSread-createSTATUScurrentDESCRIPTION"This object represents the interval at which a decision
would be made to check if the subscriber over consumed his
resources based on the subscriber usage in the past
duration as defined by ccqmCmtsEnfRuleMonDuration.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."DEFVAL{15}
::={ ccqmCmtsEnforceRuleEntry 5}ccqmCmtsEnfRulePenaltyPeriod OBJECT-TYPESYNTAXUnsigned32(1..10080)UNITS"minutes"MAX-ACCESSread-createSTATUScurrentDESCRIPTION"This object represents the period in which the
enforced QoS will be in effect from the time of detection.
When the time as defined by this object expires, the
registered QoS would be restored.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."
DEFVAL{10080}::={ ccqmCmtsEnforceRuleEntry 6}ccqmCmtsEnfRuleByteCount OBJECT-TYPESYNTAXUnsigned32UNITS"1000 bytes"MAX-ACCESSread-createSTATUScurrentDESCRIPTION"The number of kbytes that the subscriber can transmit in
the monitoring duration as indicated by
ccqmCmtsEnfRuleMonDuration before being flagged as over
consuming.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."::={ ccqmCmtsEnforceRuleEntry 7}
ccqmCmtsEnfRuleDirection OBJECT-TYPESYNTAX CCQMRuleDirection
MAX-ACCESSread-createSTATUScurrentDESCRIPTION"Specifies if the byte-count as specified by
ccqmCmtsEnfRuleByteCount is for the
upstream/downstream direction or bidirectional.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."::={ ccqmCmtsEnforceRuleEntry 8}ccqmCmtsEnfRuleAutoEnforce OBJECT-TYPESYNTAXTruthValueMAX-ACCESSread-createSTATUScurrentDESCRIPTION
"If the ccqmCmtsEnfRuleAutoEnforce is TRUE, the enforced QoS
profile as specified by ccqmCmtsEnfRuleEnfQos will be
automatically enforced when an over consuming subscriber is
detected. Otherwise the change should be done manually.
This object cannot be changed when the rule is
active or ccqmCmtsEnfRuleRowStatus is active(1)."DEFVAL{ false }::={ ccqmCmtsEnforceRuleEntry 9}ccqmCmtsEnfRuleRowStatus OBJECT-TYPESYNTAXRowStatusMAX-ACCESSread-createSTATUScurrentDESCRIPTION"The object controls and reflects the status of rows in this
table. All row status values are supported.
The status of the row needs to be changed from active(1) to
notInService(2) in cases when any of the enforce rule
objects need to be changed. If there is any monitoring
associated with this enforce rule ongoing at this time, it
will be aborted.
All statistics collected over the sample rate and monitoring
duration will be cleared. The monitoring will start again
only when the row status is changed to active(1). "::={ ccqmCmtsEnforceRuleEntry 10}--
-- ccqmEnfRuleViolateTable provides a snapshot of all the
-- subscribers who violated their enforce rule over the
-- monitoring period.
--
-- A sliding window, the size of the monitoring duration
-- is used. This window slides by an amount that is equal
-- to the sample rate. At every sample rate the bytes
-- transmitted in the time equal to a monitoring duration is
-- checked. If this is found to be larger than the defined
-- byte count limit per monitoring duration, the subscriber
-- is flagged as over consuming or violating the enforce rule.
--
-- This table will show all violating
-- subscribers irrespective if they are associated with
-- an enforced QoS or not.
--ccqmEnfRuleViolateTable OBJECT-TYPESYNTAXSEQUENCEOF CcqmEnfRuleViolateEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains information of the subscribers
who violated their enforce rule over the
monitoring duration.
In the sliding window concept used, the monitoring duration
is the size of the window. This window slides by an amount
that is equal to the sample rate. At every sample rate
the bytes transmitted in the time equal to a monitoring
duration is checked. If this is found to be larger than
the defined byte count limit per monitoring duration, the
subscriber is flagged as over consuming or to have violated
his enforce rule.
This table has entries for each of these violating
subscribers. In case the violating subscriber has
a enforced QoS, the QoS parameters for such subscribers
will be changed to the enforced QoS for the penalty
time. When the penalty time expires, the subscriber
gets his registered QoS restored and will no longer
appear in this table but will be monitored. "::={ ccqmRuleViolateObjects 2}ccqmEnfRuleViolateEntry OBJECT-TYPESYNTAX CcqmEnfRuleViolateEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"A set of attributes of a subscriber who violated
his enforce rule in the monitoring period.
An entry in this table exists for each subscriber
who over-consumed resources based on his configured
QoS parameters. However those subscribers who
have an enforced QoS associated with their enforce
rule, will be removed from this table once their
penalty time expires. An entry in this table can exist
for ifEntry with an ifType of docsCableMaclayer(127)."INDEX{ ifIndex, ccqmEnfRuleViolateID }::={ ccqmEnfRuleViolateTable 1}
CcqmEnfRuleViolateEntry ::=SEQUENCE{
ccqmEnfRuleViolateID Unsigned32,
ccqmEnfRuleViolateMacAddr MacAddress,
ccqmEnfRuleViolateRuleName DisplayString,
ccqmEnfRuleViolateByteCount Unsigned32,
ccqmEnfRuleViolateLastDetectTime DateAndTime,
ccqmEnfRuleViolatePenaltyExpTime DateAndTime}ccqmEnfRuleViolateID OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"An index assigned to the service flow by the CMTS.
In case of DOCSIS1.0 this represents an internal
service flow ID."::={ ccqmEnfRuleViolateEntry 1}ccqmEnfRuleViolateMacAddr OBJECT-TYPESYNTAXMacAddress
MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"MAC address of this subscriber. If the subscriber has
multiple MAC addresses, this is the MAC address associated
with the Cable interface."::={ ccqmEnfRuleViolateEntry 2}ccqmEnfRuleViolateRuleName OBJECT-TYPESYNTAXDisplayString(SIZE(1..15))MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"A pointer to the enforce rule associated with this
subscriber. It provides for referencing the enforce rule
to determine the QoS monitoring parameters. "::={ ccqmEnfRuleViolateEntry 3}ccqmEnfRuleViolateByteCount OBJECT-TYPESYNTAXUnsigned32UNITS"1000 bytes"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total kbytes consumed by the subscriber in the
monitoring duration as specified in the corresponding
enforce rule object ccqmCmtsEnfRuleMonDuration. If the
monitoring is restarted due to change in enforce rule
or any other circumstance this count will be reset."::={ ccqmEnfRuleViolateEntry 4}
ccqmEnfRuleViolateLastDetectTime OBJECT-TYPESYNTAXDateAndTimeMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The time at which the subscriber was found to have violated
his enforce rule and the time from which the enforced QoS,
if any, was in effect. "::={ ccqmEnfRuleViolateEntry 5}ccqmEnfRuleViolatePenaltyExpTime OBJECT-TYPESYNTAXDateAndTimeMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The time when the original QoS parameters will be restored
for this violating subscriber. If there was no enforced QoS
configured for this subscriber this object returns 0."::={ ccqmEnfRuleViolateEntry 6}--
-- Object to enable and disable sending traps to indicate Enforce Rule
-- violations
--ccqmEnfRuleViolateNotifEnable OBJECT-TYPESYNTAXTruthValueMAX-ACCESSread-writeSTATUScurrentDESCRIPTION"An indication of whether the ccqmEnfRuleViolateNotification
is enabled or disabled."DEFVAL{ false }::={ ccqmRuleViolateObjects 3}
--
-- The Cisco Cable QoS Monitoring MIB Notifications
--ccqmMIBNotificationsPrefix OBJECTIDENTIFIER::={ ciscoCableQosMonitorMIB 2}ccqmMIBNotifications OBJECTIDENTIFIER::={ ccqmMIBNotificationsPrefix 0}ccqmEnfRuleViolateNotification NOTIFICATION-TYPEOBJECTS{
ccqmEnfRuleViolateMacAddr,
ccqmEnfRuleViolateRuleName,
ccqmEnfRuleViolatePenaltyExpTime,
ccqmEnfRuleViolateByteCount
}STATUScurrentDESCRIPTION
"A notification that is sent when the subscriber
if found to have violated his enforce rule. This
indicates that this subscriber was found to be
over consuming resources. If the enforce rule
associated with this subscriber has a enforced QoS
configured, the trap also indicates that the
QoS parameters of this subscriber are changed to
the enforced QoS. "::={ ccqmMIBNotifications 1}ccqmMIBConformance OBJECTIDENTIFIER::={ ciscoCableQosMonitorMIB 3}ccqmMIBCompliances OBJECTIDENTIFIER::={ ccqmMIBConformance 1}ccqmMIBGroups OBJECTIDENTIFIER
::={ ccqmMIBConformance 2}-- compliance statementsccqmCompliance MODULE-COMPLIANCESTATUScurrentDESCRIPTION"The compliance statement for CMTS devices that implement
the Qos Monitoring feature. "MODULE-- this moduleMANDATORY-GROUPS{
ccqmEnfRuleGroup,
ccqmEnfRuleViolateGroup,
ccqmEnfRuleViolateNotifGroup
}OBJECT ccqmCmtsEnfRuleSampleRate
WRITE-SYNTAXUnsigned32(10..30)
DESCRIPTION"Currently only the range 10 to 30 minutes
is supported."::={ ccqmMIBCompliances 1}-- units of conformanceccqmEnfRuleGroup OBJECT-GROUPOBJECTS{
ccqmCmtsEnfRuleRegQoS,
ccqmCmtsEnfRuleEnfQos,
ccqmCmtsEnfRuleMonDuration,
ccqmCmtsEnfRuleSampleRate,
ccqmCmtsEnfRulePenaltyPeriod,
ccqmCmtsEnfRuleByteCount,
ccqmCmtsEnfRuleDirection,
ccqmCmtsEnfRuleAutoEnforce,
ccqmCmtsEnfRuleRowStatus
}
STATUScurrentDESCRIPTION"Group of objects implemented in CMTS
providing enforce rule and QoS monitoring
information. "::={ ccqmMIBGroups 1}ccqmEnfRuleViolateGroup OBJECT-GROUPOBJECTS{
ccqmEnfRuleViolateRuleName,
ccqmEnfRuleViolateMacAddr,
ccqmEnfRuleViolateByteCount,
ccqmEnfRuleViolateLastDetectTime,
ccqmEnfRuleViolatePenaltyExpTime,
ccqmEnfRuleViolateNotifEnable
}STATUScurrentDESCRIPTION"Group of objects implemented in CMTS
providing information of enforce rule
violations. "::={ ccqmMIBGroups 2}ccqmEnfRuleViolateNotifGroup NOTIFICATION-GROUPNOTIFICATIONS{
ccqmEnfRuleViolateNotification
}STATUScurrentDESCRIPTION"The notification which a CISCO-CABLE-QOS-MONITOR-MIB
is required to implement."::={ ccqmMIBGroups 3}END